Premium channel promotion system and method

ABSTRACT

The present invention is directed to a television schedule guide which includes a detector for determining whether a previously scrambled program is unscrambled. If a previously scrambled program is momentarily unscrambled or scrambled due to promotional efforts by the program provider, the system will visually distinguish the program on the guide, and a viewer may tune to or record the program from the guide. The view may also subscribe to the program provider through the guide during the promotional period.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.14/634,612, filed Feb. 27, 2015, (currently allowed) which is acontinuation of U.S. application Ser. No. 12/749,896, filed Mar. 30,2010, (currently patented as U.S. Pat. No. 8,997,148) which is acontinuation of U.S. application Ser. No. 10/823,993, filed Apr. 13,2004 (currently patented as U.S. Pat. No. 7,921,441), which is acontinuation of application Ser. No. 09/293,201, filed Apr. 16, 1999,(currently patented as U.S. Pat. No. 6,745,391), which is acontinuation-in-part of U.S. application Ser. No. 08/987,795, filed Dec.10, 1997 and claiming priority to U.S. Provisional Application No.60/032,651, filed Dec. 12, 1996, and which claims priority of U.S.Provisional Application No. 60/082,046, filed Apr. 16, 1998, each ofwhich is fully incorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention relates to a system for providing televisionschedule information, and more particularly to a television scheduleinformation guide with capability for displaying channel promotioninformation.

The number of television channels available to a user has growndramatically within the last decade, primarily due to the availabilityof cable and direct broadcast satellite systems. As the number ofprograms of potential interest to the viewer has increased, a variety ofelectronic program guides (EPGs) have been developed to help the viewerselect programs of particular interest. For example, commonly assignedU.S. Pat. Nos. 4,706,121 and 5,353,121 each describes scheduleinformation processing systems which provide the viewer with aconvenient way to select programs based on viewer supplied selectioncriteria.

A viewer, however, has access to the numerous channels available throughcable or satellite systems only if the viewer subscribes to thoseservices. This is because cable and direct satellite services scrambletheir signals thereby allowing only a selected group of people who havepre-arranged de-scrambling capabilities to receive their signals. Aviewer with a television system that does not include such de-scramblingcapabilities has access to only broadcast television programs.Occasionally, however, a cable or direct satellite service provider willunscramble its signals for a particular time period to allow all viewersin a given area to have access to the signals. For example, HBO may havea free movie night for subscribers and non-subscribers of HBO inFremont, Calif. In this manner, HBO could show potential subscribers inFremont, Calif., a flavor of the programming it has available, and mayattract some of the non-subscribers in Fremont to sign up with itsservice. A viewer will also benefit from such promotions, as the vieweris given a free trial of the subscription. Hence, a television schedulesystem that has the capability to detect that a program is unscrambled,and in turn notify the user that such program is available for selectionwould be desirable.

SUMMARY OF THE INVENTION

The present invention is directed to a television schedule informationsystem, and more particularly to a system with the capability fordetecting whether a program signal is scrambled or unscrambled.

In one aspect of the invention, a television schedule system configuredwith an EPG database includes a receiving location for receiving bothregularly scrambled television channels and regularly unscrambledtelevision channels. A processor in the system maintains the EPGdatabase with program listings for the regularly unscrambled channels.The processor updates the EPG database when one of the regularlyscrambled television channels is now unscrambled. The update might takethe form of adding a program listing of the program transmitted on thenow unscrambled channel for being displayed to the user. Alternatively,the update might take the form of turning on a channel and allowing itto be displayed on the guide. A viewer may then select the program titleto tune to the program, schedule an autotune to the program when theprogram comes on, record the program, or schedule a recording of theprogram when the program comes on. The viewer may further subscribe tothe service provider of the program during the promotional period.

In a further aspect of the invention, a promotional message informingthe user of the now unscrambled program is displayed on the guide.

These and other embodiments of the present invention, along with many ofits advantages and features, are described in more detail in the textbelow and in the attached figures.

DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates a preferred embodiment of a system on which aprogram schedule guide according to the present invention may bedisplayed;

FIG. 1B illustrates another representation of the TV system;

FIG. 1C is a block diagram of an embodiment of the electronic hardwareunit utilized to perform the electronic on-screen schedule display andother functions;

FIG. 1D is a chart that illustrates the hierarchical structure of anembodiment of a database built by the database engine;

FIG. 1E illustrates an exemplary channel data table;

FIG. 1F illustrates an exemplary show list table;

FIG. 1G illustrates exemplary show title entries;

FIG. 1H illustrates exemplary show description entries;

FIG. 1I illustrates an exemplary theme category table;

FIG. 1J illustrates an exemplary theme sub category table;

FIG. 1K illustrates a transmission scheme of a satellite that hasseveral transponders simultaneously transmitting on different bands;

FIG. 2 is a block diagram of a detector unit for detecting whether aprogram signal is scrambled or unscrambled;

FIG. 3 is an exemplary grid guide including a promotional message tilein accordance with the present invention;

FIG. 4 is an exemplary screen editor for selecting channels for viewing;

FIG. 5 is an exemplary grid guide including a promotional message tiledisplayed at a fixed position at the top of the guide;

FIG. 6 is an illustration of an alternative grid guide including apromotional message tile; and

FIG. 7 is a process flow diagram for displaying a promotional tile andrelated program information tiles.

DETAILED DESCRIPTION OF THE INVENTION A. Overview of the System

FIG. 1A illustrates a preferred embodiment of television/computer system1 that displays a program schedule guide according to the presentinvention. As shown, system 1 includes a distribution center 10 andmultiple receiving locations. Distribution center 10 compiles data for adata-stream. In a preferred embodiment, this data-stream is broadcast toreceiving locations 16, 18, 20, and 22. Several methods are availablefor broadcasting the data-stream from distribution center 10 toreceiving locations 16, 18, 20 and 22. For example, satellite 15 maybroadcast this data-stream within the vertical blanking interval (VBI)of a television channel (e.g., PBS) or a dedicated channel to receivinglocations 16, 18, 20, and 22. Alternatively, the data may also bebroadcast out of band, i.e., using non channel specific mechanisms. Inanother preferred embodiment, the data-stream is provided to receivinglocations 16, 18, 20, and 22 via transmission system 13. Transmissionsystem 13 may be, for example, optical fiber, coax cable, telephoneline, over the air television broadcast, or the like.

In yet another embodiment, peripheral devices, which are located withinthe receiving locations, receive the data-stream from, for example, alocal service provider 40. Service provider 40 receives the data-streamfrom distribution center 10 via line 17, and broadcasts the data-streamto the receiving peripheral devices via satellite 15 (or anothersatellite), or via lines 19 and 13. The receiving peripheral devices maybe televisions 30, televisions 34, VCRs 32, VCRs 36, and/or cable,satellite IRD, web-browser or set-top boxes 38.

Information in the data-stream may include television scheduleinformation (EPG data). Software applications located within theperipheral devices utilize the schedule information provided in thedata-stream to generate a schedule guide. In addition, the softwareapplications also determine whether a program signal is scrambled. Ifthe program signal is scrambled, the system may advise the user of suchstatus. Preferably, the system will only advise the user if a previouslyscrambled program signal is unscrambled by featuring the programprominently on the guide.

In a preferred embodiment, the electronic program guide of the presentinvention may be implemented either on a personal computer, a PCTV, atelevision connected to a set-top box, or a television including acustom board. However, the invention is not limited to any particularhardware configuration and will have increased utility as newcombinations of computers and television systems are developed. In thefollowing, any of the above will be referred to as a “TV system”. Ablock diagram of a representative TV system is depicted in FIG. 1B.Details of implementation are not depicted because the invention is notlimited to any particular TV system.

As is well known, the picture to be displayed on a TV may be transmittedas an analog signal, for example according to the NTSC standard utilizedin the United States, or as a digital signal modulated onto an analogcarrier. The signals may be received over a cable 46, or via an antenna48 or satellite dish 50. Typically, television sets are designed toreceive analog signals and computer display devices are designed todisplay pictures encoded in a digital format. However, decoder system52A can convert the digital data to an analog signal for display on atelevision set, and TV modem 52B can format analog TV signals fordisplay on a PC monitor.

In FIG. 1B, analog or digital TV signals, received via cable, antenna,or satellite dish, are provided to either a television 38 or to a PC(not shown). If the signal is from a digital broadcast service, then adecoder converts the signal to baseband video and audio or channel 3/4RF. If the signal is an analog signal, it is passed through as a livevideo output. The television, depending on its configuration, receivesselected ones of the outputs and displays the received program.

If the TV is a PCTV 40, it typically includes a TV card 42, connected toeither live video, baseband video, or channel 3/4 output. TV card 42digitizes the video image and displays the video image in a resizeablewindow on the computer monitor. PCTV 40 may also be coupled to landtelephone lines by a modem 44. If the received signal is an analog TVsignal, the TV card of the PCTV digitizes the analog signal and extractsincluded information from the vertical blanking intervals. On the otherhand, if the signal is a digital signal, separate audio, video, VBI(information such as closed caption, teletext, and program relatedinformation), program guide, and conditional access information areprovided as separate bit-streams.

The video and audio bit-streams for programs are converted to a formatfor display and the program guide information is processed to form theprogram guide database. The processor, executing software stored inmemory, generates interactive electronic program guide images, as wellas images of received programs. The guide can be used to interact withand control programs displayed in the window.

A television system configured to display an electronic program guidesuch as a guide provided by StarSight telecast includes an on-screendisplay controller and other hardware described below. If a standardanalog broadcast signal is received, program guide data is extractedfrom the VBI by a VBI data slicer and processed to form a programdatabase. If a DBS digital signal is received, either from a satelliteor cable, VBI and program data are provided in separate bit streams.

The program guide images are either generated locally or remotely andprovided to an on screen display controller. Interactivity is providedvia a remote control unit. Alternatively, the program guide can bedisplayed on a computer monitor that interactively controls thetelevision set through, for example, an IR interface including an IRblaster to generate IR codes to control the television and/or a VCR.

If the electronic guide database is generated locally, the system forcreating the electronic programming guide must receive televisionschedule information and process the received information to create adatabase. Thus, the system requires, a data reception unit, a processor,memory to store program code and a database, an on-screen displaygenerator (OSD), and a control interface for tuning to selectedchannels.

In one embodiment, the schedule information is transmitted as a set ofshort commands of specified formats. Different commands communicateinformation such as a show schedule for a given channel, the title ofeach show in the schedule, descriptions and information attributes abouteach show in the channel. Thus, information for a show to be broadcastat a particular time is transmitted in several commands. ID numbers inthe commands facilitate organizing the information into a relationaldatabase utilizing database engine (DBE) software stored in memory andexecuted by the processor.

In another embodiment, a board is included at a viewer's television setand the database is stored locally and commands are transmitted in theVBIs of programming on a designated channel, for example PBS. An exampleof a board for receiving program guide information, generating a programguide database, displaying the program guide, and interactivelycontrolling the program guide is depicted in FIG. 1C. The commands aretransmitted to the board in the vertical blanking intervals ofprogramming broadcast on a designated channel. Alternatively, thecommands could be transmitted to the local unit over land telephonelines. Additionally, as described below, in some systems the database isbuilt remotely and the guide itself is transmitted to the local unit.

The DBE builds a hierarchical database in the RAM. The hierarchicalstructure of the database is depicted in FIG. 1D. As shown, the databaseis structured internally as schedule data structures and theme datastructures linked by handles and handle tables. Each handle is an indexto a handle table which contains pointers to blocks of memory whereitems of the database are stored.

In another embodiment, for example in a DSS system, program guide datais transmitted as a bit stream that is processed by the database engine.Additionally, a N.E.W.S. (new, entertainment, weather, and sports)database has been developed. Commands including story text and story IDsare transmitted. Links from the program guide to stories related to aprogram can be created and the related stories can be accessed from theguide.

An advertisement (ad) database is also created from commands includingadvertising text and logos including IDs for linking the ads to showsdisplayed in the EPG. The user may therefore access the advertisinginformation directly from the guide.

An internet database is also created from commands including URLs tointernet sites related to programs displayed on the EPG. If the vieweris viewing the EPG on a platform that is Web enabled, e.g., WebTV, a PC,or PCTV, then a linked site can be accessed directly from the EPG.

Additionally, a graphics program module builds various displaysutilizing schedule, show title, and other information from the database.If the OSD controller operates in the character mode, the display is agrid of character codes that are transferred to the QSD controller,which generates the on-screen display.

An input-response user interface program module responds to user inputto generate new displays responsive to the particular input. In onepreferred embodiment, the user utilizes an input device, e.g., a remotecontrol unit, mouse, or keyboard, to place a pointer over a part of thecurrent display and “clicks”. The input-response module responds to theposition of the pointer and the particular display currently displayedto generate a responsive display or take a particular action. In anotherpreferred embodiment the user interface responds to function buttons ona remote control unit. Specific examples will be described below.

B. Broad Description

FIG. 1C is a block diagram of an embodiment of the electronic hardwareunit utilized to perform the electronic on-screen schedule display andother functions. The particular circuit disclosed is for TVRO (TVReceive Only) customers having home satellite dishes for televisionviewing. This unit is coupled in series with existing customer TVROequipment.

In FIG. 1C, the unit receives Baseband Video in 123 from the customerTVRO system. The unit optionally outputs Baseband Video out 128 orchannel 3/4 RF out 130. The unit includes an 8-bit microprocessor 100,64 bytes of code ROM 101, 512 K of RAM 102 for program data storage, acustom gate array 103, segmented base registers 104 for fast memory datamanipulation, security logic 106 for decoding incoming encrypted data, aserial bus 108 for display controller interface, serial bus 110 forinter-processor communication, watchdog timer 112 for error recovery, IRinput 113, IR transmitter circuits 116 for TV, VCR control, IR output117, CRC-32 encoding and decoding logic 118, on-board power supply 120,video input 123, On-Screen Display Controller and Formatter 124, customcolor converter 126, RF modulator 127, Baseband Video output 128 and RFoutput 130.

The on-screen display controller and formatter (OSDCF) 124 functions asan I/O controller, an on-screen display controller (OSD), and also as aclosed-caption data (CCD) VBI data slicer. The VBI is a dead space in aTV signal that allows a television signal to reposition the scanningelectron beam from the bottom to the top of the screen. Digital data,for example close-captioned data, is modulated onto the carrier signalduring the VBI.

The OSDCF 124 includes an analog to digital convertor (ADC) whichdigitizes the incoming baseband video and extracts digital informationtransmitted in the VBIs. As explained more fully below, messages fortransmission to the database are transmitted in the VBIs. These messagesare transferred to processor 100, which executes a database engineprocess to build or update the database.

The OSD part of the OSDCF 124 includes cache memory, character memory,timing functions, and an external RAM. The OSD reads high level graphiccommands sent from the processor 100 and stores graphic information inthe RAM. The OSD outputs red (R), green (G), blue (B), graphic datawhich is used to generate a local video signal. Depending on the stateof the user input interface, described below, the OSD local video outputor the incoming live video will be displayed.

Accordingly, screen display graphic data generated by the databaseengine is transferred to the RAM of the OSD, which generates a localvideo that causes the display screen to be displayed on the televisionscreen.

C. Scheduling Data Structures

As mentioned, the DBE builds a hierarchical database in the RAM. In oneembodiment, the hierarchical structure of the database is as depicted inFIG. 1D. As shown, the database is structured internally as scheduledata structures and theme data structures linked by handles and handletables. Each handle is an index to a handle table which containspointers to blocks of memory where structures of the database arestored.

The hierarchy for the schedule data structures, in descending order isas follows:

-   Channel Data Table: contains subscriber unit's list of channels;-   Show List: contains time slots for each show scheduled to be    broadcast for a channel;-   Show Title: contains the title text and show title attributes;-   Show Description: contains show's ratings, attributes, and    description text.

A channel data table, depicted in FIG. 1E, is the highest data structurein the hierarchy. This table includes an entry for each channel receivedby the subscriber unit. The entries in the channel data table arechanged infrequently and are determined by the location of thesubscriber unit and type of services received. Each channel data tableentry includes information concerning the channel and a handle to a showlist handle table for the channel.

The next data structure in the hierarchy is the show list depicted inFIG. 1F. The show list includes a start time typically being midnightGMT and 24 hours of scheduling. The channel's schedule is given by anordered sequence of show slots, with a show slot for each show to bebroadcast by a particular channel for a particular day. Each slotincludes a duration, show title handles and show description handle.Finding an entry corresponding to a given start time requires scanningthe entries, in order, from the beginning of the show list and addingduration values.

The database, when fully constructed, holds a week's worth of show listsfor each channel. The days of the week are accessed by incrementing theshow list handle by two bytes. The show lists are updated each day atmidnight GMT with the show list for the day just completed being deletedand the show list for the same day next week being added to thedatabase.

The next data structures in the schedule hierarchy are the show titleentries, depicted in FIG. 1G, and the show description entries, depictedin FIG. 1H. For a given show slot, the show title entry and showdescription entry are accessed utilizing the handles included in theslot. The show title and show description entries are stored in a memorypool divided into blocks. Each show title is identified by a unique20-bit show identification number (SID), and each show description isidentified by a unique 20-bit number assigned at the head end. The showtitle handles are based on the SID and the show title handles areoffsets into a show title handle table. The entry in the show titletable accessed by a particular show title handle includes the address ofthe first block in the memory pool where the show title entry is stored.Similarly, the show description handle table entry accessed by a showdescription handle stores the address of the first block in the memorypool where the show description entry is stored.

Each show title entry includes theme index ID and the text of the showtitle. Typically, a single show title entry will be referenced by manyshow lists for different channels, days, and times. Thus, by utilizinghandles in the show lists, all show lists reference a single show titleentry in memory so that memory is efficiently used. Many show titleentries have a long life because the show titles may be for series thatare broadcast over long periods of time and may be referenced by manyshowlists since many shows are broadcast by multiple channels.

Each show description entry includes a theme index ID, critics rating,MPAA rating for the show, traits mask bits, year produced, and showdescription text. Show description entries tend to have a shorter lifethan show title entries because a description is only valid for aparticular episode of a series.

D. Schedule Search

To obtain schedule information for a particular time and to display theschedule information in the programming grid requires the followingsteps. For each channel in the channel list, the show list for the dayis accessed and scanned. Horizontal blocks for the channel are sizedaccording to the duration of the show slots including and following theselected time. The show title entry referenced by each show slot isaccessed and the show title is displayed in the horizontal blockcorresponding to the show slot.

E. Theme Data Structures

A powerful feature of the database is the ability to group shows bytheme. The theme IDs stored in the show title and show descriptionentries are utilized to match particular shows to particular themes. Forexample, a viewer may want to see a listing of all comedy movies.

Each primary category, movies in the example above, has a theme categoryentry included in a theme category table, depicted in FIG. 1I. A themecategory entry includes a theme category ID, a handle for thesubcategory handle table, and the theme category name. The themecategory ID is used to identify theme sub-categories, comedy in theexample above, for this primary category.

There is a theme sub-category table, depicted in FIG. 1J, for eachprimary category. The table contains entries for each theme sub-categorycontained in a primary theme category. Each table entry includes thetheme IDs corresponding to the sub-category entry and the name of thesub-category.

F. Theme Search

When the viewer initiates a search for a particular type of show, forexample a comedy movie, each channel is inspected and theme IDs of eachshow listed are compared to theme IDs stored in the comedy entry of thetheme sub-category table corresponding to the movie primary categoryentry. Information about shows with matching theme IDs is stored in atheme search data structure in a user interface local buffer.

The theme search function requires two calls to the database. The firstof these calls initializes the theme search data structure to the firstshow that matches the theme category for a specific channel entry,including the show's time offset from the search time. The second callwill then find the next matching show after a particular offset time,updating the theme search data structure and returning the offset to thenext show. The second call will find the next matching show after aparticular offset time, updating the search data structure and returningthe starting offset of this next matching show.

The basic algorithm for the theme user interface access is as follows:

-   -   1. For a given starting time, for each channel entry, find the        first show that matches the theme criteria on or during this        time and create a list. Keep track of the channels that had        matches;    -   2. Sort the list of shows in time order;    -   3. Find the channel with the earliest show in the sorted list;    -   4. Place this earliest show into the user interface search list;    -   5. For the channel with the earliest show, request the next show        that matches the theme criteria and updated    -   5. offset time; and    -   6. Repeat steps 2-4 until all shows have been located or other        specified limit is reached (i.e. search may be for a limited        number of matches). The shows for the selected category are then        displayed in time order.

G. Ad Data Structures

An ad list data structure is similar to the show list. It includes astart time and 24 hours of ad scheduling. The ad list is regionalizedand includes an ad slot for each ad to be broadcast for a given day. Thead slot includes a duration and an Ad ID utilized to access an ad entry.

Each ad entry includes an ad banner text field, an ad text field, and apointer to an ad logo, if appropriate. The ad logo includes a graphicsfile to be displayed with the ad. The ad entries include the ad bannertext, and the ad text.

H. Building the Database

The database is built by a database engine software module operating onthe processor. Messages comprising discrete commands are received by thedatabase engine. Examples of commands include a Region Command whichspecifies channels available for a particular subscriber unit to beincluded in the Channel Data Table; a Channel Data command includinginformation utilized to form the entries in the Channel Data Table; andShowlist, Show Title, and Show Description commands including SIDs andDIDs referencing areas in memory. The database engine selects onlyShowlist Commands relevant to channels included in the Channel Table forfurther processing.

The database engine creates storage locations in memory for all SIDs andDIDs included in any Showlist. Information included in commands havingmatching SIDs or DIDs is written to the referenced memory area. Inpractice the SIDs and DIDs are processed by a hashing system for moreefficient searching.

The messages may be transmitted to a subscriber unit in various ways. Asystem for receiving messages in the VBIs of broadcast programming hasbeen described above. In a DBS system the messages may be transmitted ina dedicated bit stream. In a DBS system video baseband signals aredigitized, compressed, and modulated onto analog carrier signals.Because of advances in the art of compression, a carrier once used totransmit a single program can now transmit four programs. Typically, inaddition to video signals, other bitstreams encoding information such asaudio, VBI (vertical blanking information data such as closed captionand teletext), program guide information, and conditional accessinformation, are provided as separate bitstreams, multiplexed into acomposite bit stream, and modulated onto a carrier signal.

Alternatively, the database itself may be transmitted in a digital datastream. Typically, a digital data stream includes headers forclassifying different portions of the data in the stream. The datastream transmitted from a satellite includes video data in the formatspecified by the Motion Pictures Expert Group (MPEG) standard, MPEGaudio data, and EPG data. The MPEG video and audio data is decoded andtransformed into signals which may be utilized by a television, monitor,or other display devices. The EPG data is stored in a buffer andutilized by a controller to generate an EPG display and to tune tocorrect programs specified by user input data.

For example, in DSS, the program guide information is transmitted inblocks of 3 hours of programming for 36 channels. Programming isdigitally modulated onto different bands. As depicted in FIG. 1K, asatellite has several transponders 500 simultaneously transmitting ondifferent bands. Several channels can be modulated onto a single bandutilizing digital compression techniques. A bit stream including thecurrent programming is carried by all bands. However, future programmingfor different blocks of channels is transmitted on different bands. Theblocks are transmitted in a carousel or endless loop so that there maybe a delay before a particular time band is received.

A decoder at the viewer's location receives 16 carriers and controls atuner/demodulator to select one carrier. The carrier is sampled,decoded, error-corrected, and demultiplexed to separate the various bitstreams. The decoder includes one or more video decoder chips whichdecompress compressed video to reconstruct pictures of virtually anysize.

When the viewer accesses the guide, the block for that time period isloaded into memory so that the user can interact with the guide. For afuture time and different channel there may be a time delay. Forexample, if the current programming block were B1 and the blockcurrently received is B4 the user must wait for blocks B5, B6, and B7 tobe transmitted before the current programming can be received anddisplayed. The viewer would wait for a time delay equal to the sum oftime durations for transmitting each block, i.e., d5+d6+d7. If theprogram guide block is modulated onto a different band, the cable boxmust tune to the band and wait until the desired block is transmitted onthe carousel. Hence, if the guide is accessed for future programming,there could be a delay.

For cable, the database is built at the SST head end and sent overland-lines to the cable head end. Cable company can send data anywaythey want, for example, via VBIs, satellite, digital data bit stream,and the like.

I. User Interface

The guide user interface (GUI) takes remote control commands as itsprimary input. In one embodiment, a user requests various functions bypressing function buttons on a remote control. In another embodiment,the GUI is utilized with different interactive regions on a displayscreen corresponding to different functions. The user moves the Cursorover the interactive region corresponding to a desired function andselects the function to generate a command. The particular form ofentering a command is not critical and technology for utilizing voicecommands may soon be available.

The user interface receives commands and responds with a requesteddisplay screen and by performing the function requested by the command.The function performed may be an action such as recording a program,tuning to a channel, accessing a related internet site, purchasing apay-per-view program, or purchasing merchandise. The data and format ofeach screen is dependent on the previous screen, time of day, thecontents of the database, the command received, and other parameters. Astate table is used to define the screen flow.

For every defined screen, there is an entrance function, an exitfunction, an update function, and an array of request-handlingfunctions. The entrance function is called when a state is first enteredto collect all necessary data and format the screen. The exit functionis called to release memory and data for the screen. The update functionis called once per minute to update the screen time and to re-draw thescreen if any information displayed on the screen needs to be updated.

Once in a particular state, the table contains a reference to anothersoftware function corresponding to each key on the remote control or toeach interactive region on the screen. These referenced functions willbe executed whenever an associated remote control button is pressed orinteractive region is selected.

For example, if the user wishes to record a program, in the GUIembodiment, the viewer may move the cursor over to the recordinteractive region, which is then selected to request that the recordingfunction be performed. A confirmation screen will then be generated.Once the user confirms the recording request, an entry is made in arecording queue. A record daemon is then called from the real-timeexecutive to examine the queue and manage recording functions.

The screens are displayed by an on-screen display (OSD) controller basedon graphic display commands issued by the database engine. Among thecommands needed to draw system display screens are the Erase ScreenCommand, Draw Rectangle Command, Save Rectangle Command, RestoreRectangle Command, Move Rectangle Commands, Write ASCII String Command,and Draw Channel Icon Command.

Each screen includes areas that are constant (which are based on codeand data stored in non-volatile memory), and variable areas such as showtitles and descriptions which utilize data stored in the database. Asdescribed above in the description of the database engine, the databaseis structured to facilitate efficient searching for information,generally in the form of ASCII text strings, stored in the database. Inaddition, graphics files are also being stored in the database to bedisplayed in windows of the display screen.

H. Detecting Scrambling

According to one embodiment of the invention, the system utilizes adetector for determining whether one of the regularly scrambledtelevision channels is now unscrambled. FIG. 2 is a block diagram of areceiving location including a system detector 302 for receivingscrambled and unscrambled channels. The system detector 302 determinesif the channels are scrambled or unscrambled regardless of whether theincoming signal is analog or digital. A processor 304 coupled to thedetector 302 updates the EPG database if the output of the detectorindicates that a previously scrambled program is now unscrambled. Indoing so, the processor 304 adds listings of television programstransmitted in the now unscrambled channel, into the EPG database.Alternatively, if program listing information of the unscrambled channelhas already been downloaded to the EPG database as part of a periodicdownload, the information is not downloaded again. Instead, theprocessor 304 simply investigates whether the channel has been turned onfor display. If not, the processor 304 turns the channel on, allowingprogram listings of the unscrambled channel to be displayed as part of agrid guide via display 306.

According to an alternative embodiment of the invention, the systemdetermines that a regularly scrambled channel is now unscrambled frominformation sent by the service provider. Thus, a separate detector isno longer needed. In this scenario, the service provider transmits datato the system as to the time periods during which the unscrambling willtake place. At the start of such time period, data in the EPG databaseis updated to reflect the fact that the channel is now unscrambled.

To catch the user's attention of an unscrambled channel, the systemintroduces a promotional message to this effect, on a grid guide. FIG. 3is an illustration of an exemplary guide according to one embodiment ofthe invention. A grid guide area 400 has a plurality of tiles in whichchannels and corresponding program titles are displayed. A user mayselect channels and associated program titles he or she wants displayedon the guide, by a channel editor screen as disclosed in provisionalapplication Ser. No. 09/040,001, filed on Mar. 17, 1998. FIG. 4 is anillustration of a channel editor screen according to one embodiment ofthe invention. As illustrated in this figure, the editor screen displaysa list of all available channels and provides users the option to toggleindividual channels on and off. The channels toggled on will bedisplayed on the guide. The channels toggled off will not be displayedon the guide.

Referring back to FIG. 3, one of the tiles 402 in the guide promotes apremium channel by a banner “Free HBO Today”. Alternatively, a paneladvertisement area 404 could promote the premium channel with the samemessage. International Application No. 9,815,093 and the applicationsincorporated by reference therein, disclose the incorporation of paneladvertisements and virtual channel advertisements into an EPG at auser's television receiver. If the message is displayed in the paneladvertisement area 404, the following description regarding tile 402 isalso applicable to area 404.

For the purpose of describing the operation of the invention, it isassumed that a remote controller sends IR commands to a processor thatis programmed to carry out the described operations with the aid of aclock. The remote controller has up/down and left/right arrow keys andfunction keys that are color coded to match soft-key like functionblocks 406 and 408. The pressing of the left/right arrow key causeshorizontal movement of a cursor displayed on the guide. The pressing ofthe up/down arrow key causes the cursor to move vertically on the guide.The remote controller could also be configured with other keycombinations that perform the described functions and other functionsnot related to the invention.

At the start time of the promotion, the processor inserts a promotionaltile 402 into the grid guide area 400 to display a message alerting theuser of the availability of an unscrambled program. For instance, themessage might state “Free HBO Today” if the HBO channel is nowunscrambled, and thus, available to non-subscribers as well assubscribers. The position in which the promotional tile 402 is displayedmight be fixed, or relative to another program tile. FIG. 5 illustratesa grid guide where the promotional tile 402 is placed apart from theregular programs, at a fixed position on top of the program guide. Oneskilled in the art should recognize, however, that the promotional tile402 might be displayed at a fixed position at the bottom of the guide. Aperson skilled in the art should also recognize that the promotionaltile 402 may be visually distinguished by changing the color of thetile. Other methods such as displaying the program name in a differentfont may also be used to attract the user's attention to the promotionalmessage.

According to one embodiment, at about the same time the display of thepromotional tile occurs, the processor toggles on the channel(s) thatcarries the unscrambled programming, if that channel(s) is not alreadyturned on. For example, if there are two HBO channels, the programscarried by the two channels are displayed in tiles 410 and 412 directlybelow the promotional tile 402. However, if the two channels have beentoggled on before the start of the promotion, the system reorders thechannels in the channel lineup to cause the channels to appear below, orin close proximity, to the promotional tile 402 if this is not alreadythe case. In addition, the system might distinguish the unscrambledchannels 410, 412 apart from the other channels when displaying them onthe program guide. For instance, the unscrambled channels 410, 412 mightappear in a different color or a different font from the regularchannels on the guide.

In an alternative embodiment illustrated in FIG. 5, the system does notdisplay the program information unless the user highlights thepromotional tile 402 by moving the cursor with the arrow keys, andselects a function key for displaying program listings.

Preferrably, display of promotional tile 402 and any reordering ofchannels occurs only if the user is a non-subscriber. Thus, theprocessor detects if the television receiver is already configured tounscramble a particular channel, i.e., the television receiver isalready a subscriber to the premium channel service. In this case, theprocessor aborts the execution of the insertion of the promotional tile402 and the reordering of the now unscrambled channel(s) in the lineup.

In the event that the system displays the promotional tile 402 on theguide, a user may highlight the promotional tile 402 by moving thecursor with the arrow keys. The highlighting of the promotional tile 402causes the system to display “ADD LISTINGS” and “SUBSCRIBE” (not shown),respectively, on function blocks 406 and 408. If the user presses thefunction key that matches the “ADD LISTINGS” block, the system turns-onthe now unscrambled channels permanently on the grid guide. In otherwords, these channels are added to the list of displayed channels, andremain on until turned off again though the editor screen of FIG. 4.

If the user presses the function key that matches the “SUBSCRIBE” block,the system checks if there is a backlink to a central control stationfor the headend. If such a backlink is present, the system transmits tothe control station an order to subscribe to the highlighted premiumchannel service. Upon subscription to the premium channel service, theuser's receiver is enabled to unscramble the television signaltransmitted by the service provider.

In the event that program tiles 410, 422 listing program information ofan unscrambled channel is displayed on the guide, program listings of anunscrambled program falling under a theme group pre-selected by the userare indicated as belonging to such theme group. Similarly, if ascrambled channel has a favorite channel link (as shown in FIG. 1E) whenit is unscrambled, the system updates the favorite list to include thechannel in the favorite list.

A user may highlight a program tile 410, 412 by moving the cursor withthe arrow keys on the remote controller. When one of the program tiles410, 412 is highlighted, function blocks 406 and 408 display “WATCH” and“RECORD” (not shown), respectively. If the user presses the function keythat matches the “WATCH” block, the system causes the television set tobe turned and/or tuned to the channel transmitting the unscrambledprogram, on at or close to the time the highlighted program begins.

Alternatively, if the viewer seeks to tune to a program listed for theunscrambled channel which is not currently on, the system causes ascreen to pop-up asking the viewer whether the viewer wishes to schedulean autotune to the program when the program comes on. If the viewerindicates in the affirmative, the system tunes to the program when theprogram comes on. Preferably, the system asks for viewer confirmationbefore tuning the viewer to the program if the viewer is in the midst ofwatching a different program.

In addition, the user may also record the program by pressing a functionkey that matches the “RECORD” block. If the program is not currently on,the system asks the viewer whether the viewer wishes to schedule arecording of the program when the program does come on. If the userindicates in the affirmative, the system activates a VCR to record theprogram when the program comes on.

FIG. 6 illustrates the invention in a slightly different screen format.The same reference numbers are used to identify the areas of the screenused by the invention.

FIG. 7 is an exemplary process flow diagram for displaying a promotionaltile 402 and related program information tiles 410, 412. The processstarts and inquires in step 500 whether a previously scrambled channelis now unscrambled. As discussed above in, the system detector 302 (FIG.2) in the receiving location determines if the channels are scrambled orunscrambled, and transmits this information to the processor 304.Alternatively, the system determines that a regularly scrambled channelis now unscrambled from information sent by the service provider. Theprocessor in this scenario is programmed to receive a promotion command,including the time period during which the promotion will take place,from the cable headend or broadcast transmitter of a televisiondistribution system. The promotion command could be sent to thereceiving location as part of a periodic download of EPG data, in whichcase the processor stores the promotion command and initiates ascheduling operation to execute the promotion command at a timespecified by the cable headend or broadcase transmitter. Alternatively,the promotion command could be sent to the television receiver to beexecuted immediately upon receipt. In either case, as represented bystep 502, the process inserts tile 402 with the promotional message intogrid area 400 of the EPG.

In step 504, the process searches the channel lineup available to theuser to locate the channel which is now unscrambled. The channel lineupindicates the status of a channel as being on or off. The process thusinquires in step 506 if the channel is on. If the channel is off, asreflected by the NO branch to the inquiry of step 506, the channel istoggled on in step 508 and displayed in step 510 along with its programlistings.

If the channel has already been turned on, the channel along with itsprogram listings, will already be displayed on the guide. Thus, in allcases, the programs carried by the unscrambled channel are displayed intiles 410 and/or 412 below, or at least in proximity to, tile 402.

During the premium channel promotion, the process continually monitorsthe status of the “ADD LISTINGS” function. If the user presses thefunction key that matches the “ADD LISTINGS” block, as inquired in step512, the processor keeps the unscrambled channel turned on even afterthe promotional period, i.e., the channel is added to the list ofdisplayed channels in step 514. This might be implemented by storing theunscrambled channel in memory until the promotional period is over, andthen resetting the on/off status of the stored channel to on. Thechannel remains on until turned off again though the editor screen ofFIG. 4.

As represented by a block 516, processor also executes a timeoutoperation responsive to the promotion command. The timeout equals theperiod of the promotion, e.g., one day or two days. After the timeoutperiod, the process deletes promotional tile 402 from grid area 400. Theprocess then inquires in step 518 if the channel is to be toggled-offand deleted from the guide. This will occur in step 520 if the user hasnot selected the “ADD LISTINGS” function for keeping the channel listingdisplayed permanently on the guide. The process then ends in step 522.

While a full and complete disclosure of the invention has been providedhereinabove, it will be obvious to those skilled in the art that variousmodifications and changes may be made. Accordingly, the disclosures anddescriptions herein are illustrative, but not limiting, of the scope ofthe invention which is set forth in the following claims.

The invention claimed is:
 1. A method comprising: receiving a pluralityof program listings for a plurality of programs, including a programlisting for a first program of the plurality of programs, wherein thefirst program is a restricted-access program; determining that access tothe first program is no longer restricted during a promotional timeperiod; determining whether a user has access to the first program; andgenerating for display a promotion that provides access to the firstprogram in response to determining that the user does not have access tothe first program, wherein when the promotional time period ends, thepromotion is no longer generated for display.
 2. The method of claim 1,further comprising generating for display program listings including asecond program listing associated with a second program.
 3. The methodof claim 1, further comprising visually distinguishing the promotiongenerated for display from other program listings.
 4. The method ofclaim 1, wherein generating for display the promotion includes modifyingthe program listings generated for display to include the programlisting for the first program.
 5. The method of claim 1, furthercomprising positioning the program listing for the first program incloser proximity to the promotion than to other listings.
 6. The methodof claim 1, further comprising ordering program listings generated fordisplay to position the first program listing above other programlistings.
 7. The method of claim 1, further comprising ordering programlistings generated for display to position the first program listingbelow other program listings.
 8. The method of claim 1, furthercomprising: receiving a first user input requesting access to the firstprogram; and providing access to the first program in response toreceiving the first user input.
 9. The method of claim 1, furthercomprising: receiving a first user input requesting access to the firstprogram, wherein receiving the first user input comprises receiving aselection of the promotion during the promotional time period.
 10. Asystem comprising: control circuitry configured to: receive a pluralityof program listings for a plurality of programs, including a programlisting for a first program of the plurality of programs, wherein thefirst program is a restricted-access program; determine that access tothe first program is no longer restricted during a promotional timeperiod; determine whether a user has access to the first program; andgenerate for display a promotion that provides access to the firstprogram in response to determining that the user does not have access tothe first program, wherein when the promotional time period ends, thepromotion is no longer generated for display.
 11. The system of claim10, wherein the control circuitry is further configured to generate fordisplay program listings including a second program listing associatedwith a second program.
 12. The system of claim 10, wherein the controlcircuitry is further configured to visually distinguish the promotiongenerated for display from other program listings.
 13. The system ofclaim 10, wherein the control circuitry configured to generate fordisplay the promotion is further configured to modify program listingsgenerated for display to include the program listing for the firstprogram.
 14. The system of claim 10, wherein the control circuitry isfurther configured to position the program listing for the first programin closer proximity to the promotion than to other listings.
 15. Thesystem of claim 10, wherein the control circuitry is further configuredto order program listings generated for display to position the firstprogram listing above other program listings.
 16. The system of claim10, wherein the control circuitry is further configured to order programlistings generated for display to position the first program listingbelow other program listings.
 17. The system of claim 10, wherein thecontrol circuitry is further configured to: receive a first user inputrequesting access to the first program; and provide access to the firstprogram in response to receiving the first user input.
 18. The system ofclaim 10, wherein the control circuitry is further configured to:receive a first user input requesting access to the first program,wherein receiving the first user input comprises receiving a selectionof the promotion during the promotional time period.